encyklopedia.space

ASP.NET Core

ASP.NET Core – otwarto‑źródłowy, wieloplatformowy framework do budowy nowoczesnych aplikacji internetowych i usług API, rozwijany przez Microsoft. Zaprojektowany jako następca klasycznego ASP.NET, łączy w sobie lekkość, modułowość oraz wysoką wydajność, jednocześnie umożliwiając uruchamianie kodu na systemach Windows, Linux i macOS.

Historia

Projekt ASP.NET powstał w 2002 roku jako część platformy .NET. W 2016 roku, w odpowiedzi na rosnące zapotrzebowanie na rozwiązania działające niezależnie od systemu Windows oraz na potrzebę lepszej wydajności, Microsoft ogłosił ASP.NET Core 1.0. Pierwsza wersja została udostępniona w czerwcu 2016 roku i od tego czasu framework jest rozwijany w cyklu open‑source na platformie GitHub. Każda kolejna wersja (2.0, 2.1, 3.0, 5.0, 6.0, 7.0) wprowadzała nowe funkcje, m.in. wsparcie dla Razor Pages, gRPC oraz pełną integrację z Entity Framework Core.

Architektura

ASP.NET Core opiera się na kilku kluczowych elementach:

  • Modułowość – aplikacje składają się z pakietów NuGet, które można dodawać i usuwać w zależności od potrzeb.
  • Środowisko uruchomieniowe – framework może działać w Kestrel, wbudowanym serwerze HTTP, lub jako moduł w serwerach IIS, NGINX i Apache.
  • Wstrzykiwanie zależności (DI) – wbudowany kontener DI umożliwia łatwe zarządzanie zależnościami przy pomocy Dependency Injection.
  • Środowiska i konfiguracja – obsługa wielu środowisk (development, staging, production) oraz konfigurowanie aplikacji za pomocą plików appsettings.json, zmiennych środowiskowych i innych źródeł.

Model programistyczny

ASP.NET Core wspiera kilka głównych paradygmatów programistycznych:

  • Model‑View‑Controller (MVC) – tradycyjny wzorzec, w którym kontrolery obsługują żądania HTTP, modele reprezentują dane, a widoki (Razor) generują HTML.
  • Razor Pages – uproszczony model oparty na pojedynczych stronach, który eliminuje potrzebę tworzenia osobnych kontrolerów w prostych aplikacjach.
  • RESTful API – tworzenie usług sieciowych przy użyciu kontrolerów ApiController i atrybutów [HttpGet], [HttpPost] itp.
  • gRPC – wysokowydajny protokół oparty na HTTP/2, wykorzystywany do komunikacji między serwisami.

Kluczowe komponenty

KomponentOpis
KestrelWbudowany, lekki serwer HTTP obsługujący połączenia asynchroniczne.
MiddlewareŚrodkowy oprogramowanie (pipeline), które przetwarza żądania i odpowiedzi.
Entity Framework CoreORM umożliwiający mapowanie obiektowo‑relacyjne z bazą danych.
SignalRBiblioteka do komunikacji w czasie rzeczywistym (WebSocket, Server‑Sent Events).
ASP.NET Core IdentitySystem uwierzytelniania i autoryzacji użytkowników.

Obsługa platform

Dzięki architekturze opartej na .NET Core (od wersji 3.0) oraz później na .NET 5/6/7, ASP.NET Core może być kompilowany do natywnych binarek dla:

  • Systemu Windows – jako aplikacja konsolowa, usługa Windows lub aplikacja uruchamiana w IIS.
  • Systemu Linux – uruchamiana bezpośrednio na Kestrel lub za pośrednictwem NGINX/Apache.
  • Systemu macOS – wspierana w środowisku deweloperskim oraz przy wdrożeniach w chmurze.

Rozwój i ekosystem

ASP.NET Core jest częścią większego ekosystemu .NET, co oznacza, że deweloperzy mogą korzystać z:

  • C# – nowoczesnego języka programowania, wspieranego przez najnowsze wersje kompilatora.
  • Visual Studio i Visual Studio Code – edytorów z rozbudowaną obsługą debugowania, IntelliSense i szablonów projektów.
  • Docker – łatwe konteneryzowanie aplikacji ASP.NET Core przy użyciu oficjalnych obrazów mcr.microsoft.com/dotnet/aspnet.
  • Microsoft Azure – chmurowe platformy takie jak Azure App Service, Azure Kubernetes Service (AKS) i Azure Functions, które natywnie obsługują aplikacje ASP.NET Core.

Zastosowania

Framework znajduje zastosowanie w wielu typach projektów:

  • Strony internetowe i aplikacje SPA (np. przy integracji z Angular, React czy Vue.js).
  • Usługi API i mikroserwisy, które korzystają z lekkiego modelu REST lub gRPC.
  • Aplikacje biznesowe oparte na Blazor, umożliwiające tworzenie interfejsu przy użyciu C# zarówno po stronie serwera, jak i przeglądarki.
  • Rozwiązania czasu rzeczywistego dzięki SignalR.

Przykład prostego projektu

dotnet new webapp -n MojaAplikacja
cd MojaAplikacja
dotnet run

Powyższe polecenia tworzą nowy projekt Razor Pages, uruchamiają go w trybie deweloperskim oraz udostępniają pod adresem https://localhost:5001.

Porównanie z klasycznym ASP.NET

CechaASP.NET ClassicASP.NET Core
PlatformaTylko Windows/IISWieloplatformowa (Windows, Linux, macOS)
LicencjaProprietarnaOpen‑Source (MIT)
WydajnośćOgraniczona przez System.WebLepsza dzięki Kestrel i nowemu runtime
ModułowośćMonolitycznaPakiety NuGet, możliwość usuwania niepotrzebnych komponentów
Wsparcie dla kontenerówOgraniczonePełna integracja z Docker i Kubernetes

Przyszłość

Od wersji .NET 6 ASP.NET Core jest częścią platformy .NET LTS (Long‑Term Support), co zapewnia długoterminowe wsparcie i stabilność. Kolejne major release’y (np. .NET 8, .NET 9) będą kontynuować rozwój w kierunku usprawnienia wydajności, dalszej integracji z technologiami chmurowymi oraz wprowadzenia nowych programistycznych możliwości, takich jak natywne wsparcie dla Minimal API i rozbudowane narzędzia diagnostyczne.

Literatura i materiały

  • Dokumentacja oficjalna ASP.NET Core – opis funkcji, przewodniki i przykłady.
  • Książka ASP.NET Core in Action – praktyczne wprowadzenie do budowy aplikacji.
  • Seria artykułów Microsoft Learn – interaktywne samouczki.

ASP.NET Core stał się jednym z najważniejszych narzędzi w ekosystemie .NET, umożliwiając programistom tworzenie skalowalnych, wydajnych i nowoczesnych aplikacji internetowych, które działają na dowolnym systemie operacyjnym i w najróżniejszych środowiskach chmurowych.